package com.ronri.list.editview;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.cz.nongyetongv5.R;
import com.ronri.choosephotos.PhotoItem;
import com.ronri.common.DensityUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2017/5/8.
 */

public class PhotoItemElement extends AbstractItemElement {

    /**
     * 调试输出
     */
    final private String _TAG = "PhotoItemElement";

    // 视图
    View cView = null;

    // 图片数据列表
    List<PhotoItem> mItems = new ArrayList<PhotoItem>();

    /***
     * 构造函数
     *
     * @param context     句柄
     * @param szTitle     标题
     * @param szInfo      信息
     * @param dLeftImage  左边图标
     * @param dRightImage 右边图标
     * @param szFieldName 字段名称
     * @param szValue     字段值
     * @param bStatus     状态
     */
    public PhotoItemElement(
            Context context,
            String szTitle,
            String szInfo,
            Drawable dLeftImage,
            Drawable dRightImage,
            String szFieldName,
            String szValue,
            boolean bStatus) {
        super(context, szTitle, szInfo, dLeftImage, dRightImage, szFieldName, szValue, bStatus);

        // 重新绑定视图
        this.layoutid = R.layout.v_photo_element;

        // 设置当前的对象的名称
        this.ControlName = "PhotoItemElement";
    }

    public List<PhotoItem> GetPhotos(){
        return mItems;
    }

    public void SetPhotos(List<PhotoItem> lPhotos)
    {
        mItems = lPhotos;
    }

    /***
     * 刷新视图
     */
    public void RefreshGraph()
    {
        LinearLayout imageGroup = (LinearLayout)cView.findViewById(R.id.imageArray);

        // 移除所有的图片信息
        imageGroup.removeAllViews();

        int nMarginLeft = 0;

        // 添加图片信息
        for(PhotoItem item : mItems){
            ImageView imageView = new ImageView(imageGroup.getContext());

            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DensityUtil.dip2px(50), DensityUtil.dip2px(50));

            params.setMargins(nMarginLeft, 0 , 0 ,0);
            imageView.setLayoutParams(params);
            imageView.setImageBitmap(item.GetBitmap());

            // 给视图添加视图
            imageGroup.addView(imageView);

            // 计算间隔距离
            nMarginLeft = DensityUtil.dip2px(15);
        }
    }

    /***
     * 创建视图信息
     *
     * @param parent
     * @return
     */
    @Override
    public View CreateView(ViewGroup parent) {

        // 创建默认视图
        cView = super.CreateView(parent);

        // 获取标题元素
        TextView tvTitle = (TextView) cView.findViewById(R.id.title);

        // 设置标题
        tvTitle.setText(this.Title);

        LinearLayout imageGroup = (LinearLayout)cView.findViewById(R.id.imageArray);

        // 移除所有的图片信息
        imageGroup.removeAllViews();

        int nMarginLeft = 0;

        // 添加图片信息
        for(PhotoItem item : mItems){
            ImageView imageView = new ImageView(imageGroup.getContext());

            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DensityUtil.dip2px(50), DensityUtil.dip2px(50));

            params.setMargins(nMarginLeft, 0 , 0 ,0);
            imageView.setLayoutParams(params);
            imageView.setImageBitmap(item.GetSmallBitmap(DensityUtil.dip2px(50), DensityUtil.dip2px(50)));

            // 给视图添加视图
            imageGroup.addView(imageView);

            // 计算间隔距离
            nMarginLeft = DensityUtil.dip2px(15);
        }

        // 判断当前状态，并设置状态图标
        if (this.LeftImage != null) {
            if (this.IsOK() == 1) {
                ImageView ivImage = (ImageView) cView.findViewById(R.id.rightimg);
                ivImage.setImageDrawable(this.LeftImage);
            }
        }

        return cView;
    }

    @Override
    public void Excute() {
        super.Excute();
    }

    @Override
    public String FormatInfo(String Value) {
        return null;
    }
//
//    // 单图片信息
//    private class PhotoItem {
//        // 图片路径
//        public String PhotoPath = "";
//
//        // 资源
//        public int PhotoResource = -1;
//
//        // 获取资源图片
//        public Bitmap getBitmap() {
//
//            if (PhotoPath != "")
//            {
//                Bitmap bitmap = BitmapFactory.decodeFile(PhotoPath);
//                return bitmap;
//            }else{
//                if (PhotoResource != -1)
//                {
//                    Bitmap bitmap = BitmapFactory.decodeResource(SystemApplication.getInstance().getResources(), PhotoResource);
//                    return bitmap;
//                }
//            }
//            return null;
//        }
//    }
}
